<!DOCTYPE html>
<html lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>project_object_model_3d [HALCON算子参考手册]</title>
<style type="text/css">
      body {
    color: #000000;
    background-color: #ffffff;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
}

.body_main {
    margin-left: 35px;
    margin-right: 35px;
}

@media screen and (min-width:992px) {

    .body_main {
        margin-left: 10%;
        margin-right: 10%;
    }

    table.toctable {
        width: 80%
    }
}

@media screen and (min-width:1400px) {

    .body_main {
        margin-left: 15%;
        margin-right: 15%;
    }

    table.toctable {
        width: 70%
    }
}

body>div ul ul {
    margin-left: inherit;
}

a:link {
    color: #0044cc;
}

a:link,
a:visited {
    text-decoration: none;
}

a:link:hover,
a:visited:hover {
    text-decoration: underline;
}

th {
    text-align: left;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    text-rendering: optimizeLegibility;
    color: #666666;
}

code {
    font-family: monospace,monospace;
}

h1 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

h2 a.halconoperator {
    font-family: Arial, Helvetica, sans-serif;
    color: #666666;
}

hr {
    border: 0;
    border-top: solid 1px #f28d26;
}

.pre {
    display: block;
    padding-bottom: 1ex;
    font-family: monospace;
    white-space: pre;
}

pre {
    font-family: monospace, monospace;
    padding: 1ex;
    white-space: pre-wrap;
}

.toc {
    font-size: 80%;
    border-top: 1px dashed #f28d26;
    border-bottom: 1px dashed #f28d26;
    padding-top: 5px;
    padding-bottom: 5px;
}

.inv {
    margin: 0;
    border: 0;
    padding: 0;
}

.banner {
    color: #666666;
    padding-left: 1em;
}

.logo {
    background-color: white;
}

.keyboard {
    font-size: 80%;
    padding-left: 3px;
    padding-right: 3px;
    border-radius: 5px;
    border-width: 1px;
    border-style: solid;
    border-color: #f28d26;
    background-color: #f3f3f3;
}

.warning {
    margin-top: 2ex;
    margin-bottom: 1ex;
    padding: 10px;
    text-align: center;
    border: 1px solid;
    color: #bb0000;
    background-color: #fff7f7
}

.imprint {
    margin-top: 1ex;
    font-size: 80%;
    color: #666666;
}

.imprinthead {
    font-weight: bolder;
    color: #666666;
}

.indexlink {
    text-align: right;
    padding-bottom: 5px;
}

.postscript {
    margin-top: 2ex;
    font-size: 80%;
    color: #666666
}

.evenrow {
    background-color: #e7e7ef;
    vertical-align: top;
}

.oddrow {
    background-color: #f7f7ff;
    vertical-align: top;
}

.headrow {
    background-color: #97979f;
    color: #ffffff;
    vertical-align: top;
}

.logorow {
    vertical-align: top;
}

.error {
    color: red;
}

.var {
    font-style: italic
}

.halconoperator {
    font-family: monospace, monospace;
}

span.operator {
    font-family: monospace, monospace;
}

span.procedure {
    font-family: monospace, monospace;
}

span.operation {
    font-family: monospace, monospace;
}

span.feature {
    font-family: Arial, Helvetica, Homerton, sans-serif;
}

ul {
    padding-left: 1.2em;
}

li.dot {
    list-style-type: square;
    color: #f28d26;
}

.breadcrumb {
    font-size: 80%;
    color: white;
    background-color: #062d64;
    margin-bottom: 20px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 15px;
}

.webbar {
    font-size: 80%;
    background-color: #dddddd;
    margin-top: 0px;
    margin-left: -35px;
    margin-right: -35px;
    margin-bottom: 0px;
    padding-top: 5px;
    padding-left: 35px;
    padding-right: 35px;
    padding-bottom: 5px;
}

.footer {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    border-top: 1px dashed #f28d26;
    font-size: 80%;
    color: #666666;
    padding-bottom: 8px;
}

.footer .socialmedia a {
    padding-left: 7px;
}

.socialmedia {
    padding-top: 10px;
}

.copyright {
    margin-top: 19px;
}

.breadcrumb a {
    color: #ffffff;
    border-bottom: 1px solid white;
}

.breadcrumb a:link:hover,
.breadcrumb a:visited:hover {
    text-decoration: none;
    border-bottom: none;
}

.heading {
    margin-top: 1ex;
    font-size: 110%;
    font-weight: bold;
    color: #666666;
}

.text {
    color: black;
}

.example {
    font-size: 80%;
    background-color: #f3f3f3;
    border: 1px dashed #666666;
    padding: 10px;
}

.displaymath {
    display: block;
    text-align: center;
    margin-top: 1ex;
    margin-bottom: 1ex;
}

.title {
    float: left;
    padding-top: 3px;
    padding-bottom: 3px;
}

.signnote {
    font-family: Arial, Helvetica, Homerton, sans-serif;
    font-size: 80%;
    color: #666666;
    font-weight: lighter;
    font-style: italic
}

.par {
    margin-bottom: 1.5em;
}

.parhead {
    text-align: right;
}

.parname {
    float: left;
}

.pardesc {
    font-size: 85%;
    margin-top: 0.5em;
    margin-bottom: 0.5em;
    margin-left: 2em;
}

.parcat {
    color: #666;
    font-weight: bold;
}

*[data-if=cpp],
*[data-if=c],
*[data-if=dotnet],
*[data-if=com],
*[data-if=python] {
    display: none;
}

.tabbar {
    text-align: right;
    border-bottom: 1px solid #f28d26;
    margin-bottom: 0.5em;
}

ul.tabs {
    padding-top: 3px;
    padding-bottom: 3px;
    margin-top: 10px;
    margin-bottom: 0;
    font-size: 80%
}

ul.tabs li {
    padding-top: 3px;
    padding-bottom: 3px;
    display: inline;
    overflow: hidden;
    list-style-type: none;
    margin: 0;
    margin-left: 8px;
    border-top: 1px solid #666;
    border-left: 1px solid #666;
    border-right: 1px solid #666;
}

ul.tabs li.active {
    border-left: 1px solid #f28d26;
    border-right: 1px solid #f28d26;
    border-top: 1px solid #f28d26;
    border-bottom: 1px solid #fff;
}

ul.tabs li.inactive {
    background-color: #eee;
}

ul.tabs li a {
    padding-left: 5px;
    padding-right: 5px;
    color: #666;
}

ul.tabs li a:link:hover {
    text-decoration: none;
}

ul.tabs li.inactive a {
    color: #666;
}

ul.tabs li.active a {
    color: black;
}

dl.generic dd {
    margin-bottom: 1em;
}

.pari {
    color: olive;
}

.paro {
    color: maroon;
}

.comment {
    font-size: 80%;
    color: green;
    white-space: nowrap;
}

table.grid {
    border-collapse: collapse;
}

table.grid td {
    padding: 5px;
    border: 1px solid;
}

table.layout {
    border: 0px;
}

table.layout td {
    padding: 5px;
}

table.table {
    border-collapse: collapse;
}

table.table td {
    padding: 5px;
    border-left: 0px;
    border-right: 0px;
}

table.table tr:last-child {
    border-bottom: 1px solid;
}

table.table th {
    padding: 5px;
    border-top: 1px solid;
    border-bottom: 1px solid;
    border-left: 0px;
    border-right: 0px;
}

.details_summary {
    cursor: pointer;
}

table.toctable {
    width: 100%;
}

table.toctable col:first-child {
    width: 20%;
}

table.toctable col:nth-last-child(2) {
    width: 8%;
}

table.altcolored tr:nth-child(even) {
    background-color: #f3f3f3;
}

    </style>
<!--OP_REF_STYLE_END-->
<script>
    <!--
var active_lang='hdevelop';function switchVisibility(obj,active_lang,new_lang)
{var display_style='inline';
for(var i=0;i<obj.length;i++)
{if(obj.item(i).getAttribute('data-if')==new_lang)
{obj.item(i).style.display=display_style;}
if(obj.item(i).getAttribute('data-if')==active_lang)
{obj.item(i).style.display='none';}}
return;}
function toggleLanguage(new_lang,initial)
{if(active_lang!=new_lang)
{var lis=document.getElementsByTagName('li');for(var i=0;i<lis.length;i++)
{if(lis.item(i).id=='syn-'+new_lang)
{lis.item(i).className='active';}
else
{lis.item(i).className='inactive';}}
var divs=document.getElementsByTagName('div');var spans=document.getElementsByTagName('span');switchVisibility(divs,active_lang,new_lang);switchVisibility(spans,active_lang,new_lang);if(!initial)
{setCookie("halcon_reference_language",new_lang,null,null);}
active_lang=new_lang;}
return;}
function setCookie(name,value,domain,exp_offset,path,secure)
{localStorage.setItem(name,value);}
function getCookie(name)
{return localStorage.getItem(name);}
function initialize()
{var qs=location.href.split('?')[1];var qs_lang_raw=location.href.split('interface=')[1];var qs_lang;if(qs_lang_raw)
{qs_lang=qs_lang_raw.split('#')[0];}
var cookie_lang=getCookie("halcon_reference_language");var new_lang;if((qs_lang=="hdevelop")||(qs_lang=="dotnet")||(qs_lang=="python")||(qs_lang=="cpp")||(qs_lang=="c"))
{new_lang=qs_lang;setCookie("halcon_reference_language",new_lang,null,null);}
else if((cookie_lang=="hdevelop")||(cookie_lang=="dotnet")||(cookie_lang=="python")||(cookie_lang=="cpp")||(cookie_lang=="c"))
{new_lang=cookie_lang;}
else
{new_lang="hdevelop";}
toggleLanguage(new_lang,1);return;}
-->

  </script>
</head>
<body onload="initialize();">
<div class="breadcrumb">
<br class="inv"><a href="index.html">目录</a> / <a href="toc_3dobjectmodel.html">3D Object Model</a> / <a href="toc_3dobjectmodel_transformations.html">变换</a><br class="inv">
</div>
<div class="body_main">
<div class="tabbar"><ul class="tabs">
<li id="syn-hdevelop" class="active"><a href="javascript:void(0);" onclick="toggleLanguage('hdevelop')" onfocus="blur()">HDevelop</a></li>
<li id="syn-dotnet" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('dotnet')" onfocus="blur()">.NET</a></li>
<li id="syn-python" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('python')" onfocus="blur()">Python</a></li>
<li id="syn-cpp" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('cpp')" onfocus="blur()">C++</a></li>
<li id="syn-c" class="inactive"><a href="javascript:void(0);" onclick="toggleLanguage('c')" onfocus="blur()">C</a></li>
</ul></div>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<!--OP_REF_HEADER_END-->
<h1 id="sec_name">
<span data-if="hdevelop" style="display:inline;">project_object_model_3d</span><span data-if="c" style="display:none;">T_project_object_model_3d</span><span data-if="cpp" style="display:none;">ProjectObjectModel3d</span><span data-if="dotnet" style="display:none;">ProjectObjectModel3d</span><span data-if="python" style="display:none;">project_object_model_3d</span> (算子名称)</h1>
<h2>名称</h2>
<p><code><span data-if="hdevelop" style="display:inline;">project_object_model_3d</span><span data-if="c" style="display:none;">T_project_object_model_3d</span><span data-if="cpp" style="display:none;">ProjectObjectModel3d</span><span data-if="dotnet" style="display:none;">ProjectObjectModel3d</span><span data-if="python" style="display:none;">project_object_model_3d</span></code> — Project a 3D object model into image coordinates.</p>
<h2 id="sec_synopsis">参数签名</h2>
<div data-if="hdevelop" style="display:inline;">
<p>
<code><b>project_object_model_3d</b>( : <a href="#ModelContours"><i>ModelContours</i></a> : <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, <a href="#CamParam"><i>CamParam</i></a>, <a href="#Pose"><i>Pose</i></a>, <a href="#GenParamName"><i>GenParamName</i></a>, <a href="#GenParamValue"><i>GenParamValue</i></a> : )</code></p>
</div>
<div data-if="c" style="display:none;">
<p>
<code>Herror <b>T_project_object_model_3d</b>(Hobject* <a href="#ModelContours"><i>ModelContours</i></a>, const Htuple <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, const Htuple <a href="#CamParam"><i>CamParam</i></a>, const Htuple <a href="#Pose"><i>Pose</i></a>, const Htuple <a href="#GenParamName"><i>GenParamName</i></a>, const Htuple <a href="#GenParamValue"><i>GenParamValue</i></a>)</code></p>
</div>
<div data-if="cpp" style="display:none;">
<p>
<code>void <b>ProjectObjectModel3d</b>(HObject* <a href="#ModelContours"><i>ModelContours</i></a>, const HTuple&amp; <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, const HTuple&amp; <a href="#CamParam"><i>CamParam</i></a>, const HTuple&amp; <a href="#Pose"><i>Pose</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>)</code></p>
<p>
<code><a href="HXLDCont.html">HXLDCont</a> <a href="HObjectModel3D.html">HObjectModel3D</a>::<b>ProjectObjectModel3d</b>(const HCamPar&amp; <a href="#CamParam"><i>CamParam</i></a>, const HPose&amp; <a href="#Pose"><i>Pose</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>) const</code></p>
<p>
<code><a href="HXLDCont.html">HXLDCont</a> <a href="HObjectModel3D.html">HObjectModel3D</a>::<b>ProjectObjectModel3d</b>(const HCamPar&amp; <a href="#CamParam"><i>CamParam</i></a>, const HPose&amp; <a href="#Pose"><i>Pose</i></a>, const HString&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HString&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>) const</code></p>
<p>
<code><a href="HXLDCont.html">HXLDCont</a> <a href="HObjectModel3D.html">HObjectModel3D</a>::<b>ProjectObjectModel3d</b>(const HCamPar&amp; <a href="#CamParam"><i>CamParam</i></a>, const HPose&amp; <a href="#Pose"><i>Pose</i></a>, const char* <a href="#GenParamName"><i>GenParamName</i></a>, const char* <a href="#GenParamValue"><i>GenParamValue</i></a>) const</code></p>
<p>
<code><a href="HXLDCont.html">HXLDCont</a> <a href="HObjectModel3D.html">HObjectModel3D</a>::<b>ProjectObjectModel3d</b>(const HCamPar&amp; <a href="#CamParam"><i>CamParam</i></a>, const HPose&amp; <a href="#Pose"><i>Pose</i></a>, const wchar_t* <a href="#GenParamName"><i>GenParamName</i></a>, const wchar_t* <a href="#GenParamValue"><i>GenParamValue</i></a>) const  <span class="signnote">
            (
            Windows only)
          </span></code></p>
<p>
<code><a href="HXLDCont.html">HXLDCont</a> <a href="HCamPar.html">HCamPar</a>::<b>ProjectObjectModel3d</b>(const HObjectModel3D&amp; <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, const HPose&amp; <a href="#Pose"><i>Pose</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>) const</code></p>
<p>
<code><a href="HXLDCont.html">HXLDCont</a> <a href="HCamPar.html">HCamPar</a>::<b>ProjectObjectModel3d</b>(const HObjectModel3D&amp; <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, const HPose&amp; <a href="#Pose"><i>Pose</i></a>, const HString&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HString&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>) const</code></p>
<p>
<code><a href="HXLDCont.html">HXLDCont</a> <a href="HCamPar.html">HCamPar</a>::<b>ProjectObjectModel3d</b>(const HObjectModel3D&amp; <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, const HPose&amp; <a href="#Pose"><i>Pose</i></a>, const char* <a href="#GenParamName"><i>GenParamName</i></a>, const char* <a href="#GenParamValue"><i>GenParamValue</i></a>) const</code></p>
<p>
<code><a href="HXLDCont.html">HXLDCont</a> <a href="HCamPar.html">HCamPar</a>::<b>ProjectObjectModel3d</b>(const HObjectModel3D&amp; <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, const HPose&amp; <a href="#Pose"><i>Pose</i></a>, const wchar_t* <a href="#GenParamName"><i>GenParamName</i></a>, const wchar_t* <a href="#GenParamValue"><i>GenParamValue</i></a>) const  <span class="signnote">
            (
            Windows only)
          </span></code></p>
<p>
<code><a href="HXLDCont.html">HXLDCont</a> <a href="HPose.html">HPose</a>::<b>ProjectObjectModel3d</b>(const HObjectModel3D&amp; <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, const HCamPar&amp; <a href="#CamParam"><i>CamParam</i></a>, const HTuple&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HTuple&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>) const</code></p>
<p>
<code><a href="HXLDCont.html">HXLDCont</a> <a href="HPose.html">HPose</a>::<b>ProjectObjectModel3d</b>(const HObjectModel3D&amp; <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, const HCamPar&amp; <a href="#CamParam"><i>CamParam</i></a>, const HString&amp; <a href="#GenParamName"><i>GenParamName</i></a>, const HString&amp; <a href="#GenParamValue"><i>GenParamValue</i></a>) const</code></p>
<p>
<code><a href="HXLDCont.html">HXLDCont</a> <a href="HPose.html">HPose</a>::<b>ProjectObjectModel3d</b>(const HObjectModel3D&amp; <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, const HCamPar&amp; <a href="#CamParam"><i>CamParam</i></a>, const char* <a href="#GenParamName"><i>GenParamName</i></a>, const char* <a href="#GenParamValue"><i>GenParamValue</i></a>) const</code></p>
<p>
<code><a href="HXLDCont.html">HXLDCont</a> <a href="HPose.html">HPose</a>::<b>ProjectObjectModel3d</b>(const HObjectModel3D&amp; <a href="#ObjectModel3D"><i>ObjectModel3D</i></a>, const HCamPar&amp; <a href="#CamParam"><i>CamParam</i></a>, const wchar_t* <a href="#GenParamName"><i>GenParamName</i></a>, const wchar_t* <a href="#GenParamValue"><i>GenParamValue</i></a>) const  <span class="signnote">
            (
            Windows only)
          </span></code></p>
</div>
<div data-if="com" style="display:none;"></div>
<div data-if="dotnet" style="display:none;">
<p>
<code>static void <a href="HOperatorSet.html">HOperatorSet</a>.<b>ProjectObjectModel3d</b>(out <a href="HObject.html">HObject</a> <a href="#ModelContours"><i>modelContours</i></a>, <a href="HTuple.html">HTuple</a> <a href="#ObjectModel3D"><i>objectModel3D</i></a>, <a href="HTuple.html">HTuple</a> <a href="#CamParam"><i>camParam</i></a>, <a href="HTuple.html">HTuple</a> <a href="#Pose"><i>pose</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
<p>
<code><a href="HXLDCont.html">HXLDCont</a> <a href="HObjectModel3D.html">HObjectModel3D</a>.<b>ProjectObjectModel3d</b>(<a href="HCamPar.html">HCamPar</a> <a href="#CamParam"><i>camParam</i></a>, <a href="HPose.html">HPose</a> <a href="#Pose"><i>pose</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
<p>
<code><a href="HXLDCont.html">HXLDCont</a> <a href="HObjectModel3D.html">HObjectModel3D</a>.<b>ProjectObjectModel3d</b>(<a href="HCamPar.html">HCamPar</a> <a href="#CamParam"><i>camParam</i></a>, <a href="HPose.html">HPose</a> <a href="#Pose"><i>pose</i></a>, string <a href="#GenParamName"><i>genParamName</i></a>, string <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
<p>
<code><a href="HXLDCont.html">HXLDCont</a> <a href="HCamPar.html">HCamPar</a>.<b>ProjectObjectModel3d</b>(<a href="HObjectModel3D.html">HObjectModel3D</a> <a href="#ObjectModel3D"><i>objectModel3D</i></a>, <a href="HPose.html">HPose</a> <a href="#Pose"><i>pose</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
<p>
<code><a href="HXLDCont.html">HXLDCont</a> <a href="HCamPar.html">HCamPar</a>.<b>ProjectObjectModel3d</b>(<a href="HObjectModel3D.html">HObjectModel3D</a> <a href="#ObjectModel3D"><i>objectModel3D</i></a>, <a href="HPose.html">HPose</a> <a href="#Pose"><i>pose</i></a>, string <a href="#GenParamName"><i>genParamName</i></a>, string <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
<p>
<code><a href="HXLDCont.html">HXLDCont</a> <a href="HPose.html">HPose</a>.<b>ProjectObjectModel3d</b>(<a href="HObjectModel3D.html">HObjectModel3D</a> <a href="#ObjectModel3D"><i>objectModel3D</i></a>, <a href="HCamPar.html">HCamPar</a> <a href="#CamParam"><i>camParam</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamName"><i>genParamName</i></a>, <a href="HTuple.html">HTuple</a> <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
<p>
<code><a href="HXLDCont.html">HXLDCont</a> <a href="HPose.html">HPose</a>.<b>ProjectObjectModel3d</b>(<a href="HObjectModel3D.html">HObjectModel3D</a> <a href="#ObjectModel3D"><i>objectModel3D</i></a>, <a href="HCamPar.html">HCamPar</a> <a href="#CamParam"><i>camParam</i></a>, string <a href="#GenParamName"><i>genParamName</i></a>, string <a href="#GenParamValue"><i>genParamValue</i></a>)</code></p>
</div>
<div data-if="python" style="display:none;">
<p>
<code>def <b>project_object_model_3d</b>(<a href="#ObjectModel3D"><i>object_model_3d</i></a>: HHandle, <a href="#CamParam"><i>cam_param</i></a>: Sequence[Union[int, float, str]], <a href="#Pose"><i>pose</i></a>: Sequence[Union[int, float]], <a href="#GenParamName"><i>gen_param_name</i></a>: MaybeSequence[str], <a href="#GenParamValue"><i>gen_param_value</i></a>: MaybeSequence[Union[str, int, float]]) -&gt; HObject</code></p>
</div>
<h2 id="sec_description">描述</h2>
<p>该算子 <code><span data-if="hdevelop" style="display:inline">project_object_model_3d</span><span data-if="c" style="display:none">project_object_model_3d</span><span data-if="cpp" style="display:none">ProjectObjectModel3d</span><span data-if="com" style="display:none">ProjectObjectModel3d</span><span data-if="dotnet" style="display:none">ProjectObjectModel3d</span><span data-if="python" style="display:none">project_object_model_3d</span></code> projects a
3D object model into the image coordinate system and returns the
projected contours in <a href="#ModelContours"><i><code><span data-if="hdevelop" style="display:inline">ModelContours</span><span data-if="c" style="display:none">ModelContours</span><span data-if="cpp" style="display:none">ModelContours</span><span data-if="com" style="display:none">ModelContours</span><span data-if="dotnet" style="display:none">modelContours</span><span data-if="python" style="display:none">model_contours</span></code></i></a>. This operator is
particularly useful for the visualization of 3D object models.
Note that primitives are not projected but silently ignored.
The coordinates of the 3D object model are given in the model coordinate
system (<i>mcs</i>), a 3D world coordinate system.
First, they are transformed into the camera coordinate system (<i>ccs</i>)
using the given <a href="#Pose"><i><code><span data-if="hdevelop" style="display:inline">Pose</span><span data-if="c" style="display:none">Pose</span><span data-if="cpp" style="display:none">Pose</span><span data-if="com" style="display:none">Pose</span><span data-if="dotnet" style="display:none">pose</span><span data-if="python" style="display:none">pose</span></code></i></a>.
Then, these coordinates are projected into the
image coordinate system based on the internal camera parameters
<a href="#CamParam"><i><code><span data-if="hdevelop" style="display:inline">CamParam</span><span data-if="c" style="display:none">CamParam</span><span data-if="cpp" style="display:none">CamParam</span><span data-if="com" style="display:none">CamParam</span><span data-if="dotnet" style="display:none">camParam</span><span data-if="python" style="display:none">cam_param</span></code></i></a>.
Thereby the pose is needed in the form
<span title="1" style="vertical-align:-0.217917em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="3.53593em" height="1.01195em" viewBox="0 0 56.574936 16.191269">
<!-- Original BoundingBox: -28.287476 -8.095642 28.287460 8.095627 -->
  <defs>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_99">
      <path style="fill-rule: evenodd;" d="M438.000000 -383.000000C402.000000 -377.000000,387.000000 -349.000000,387.000000 -327.000000C387.000000 -300.000000,408.000000 -290.000000,426.000000 -290.000000C448.000000 -290.000000,483.000000 -306.000000,483.000000 -354.000000C483.000000 -422.000000,405.000000 -441.000000,351.000000 -441.000000C201.000000 -441.000000,62.000000 -303.000000,62.000000 -164.000000C62.000000 -78.000000,122.000000 10.000000,247.000000 10.000000C416.000000 10.000000,495.000000 -89.000000,495.000000 -103.000000C495.000000 -109.000000,486.000000 -120.000000,478.000000 -120.000000C472.000000 -120.000000,470.000000 -118.000000,462.000000 -110.000000C384.000000 -18.000000,267.000000 -18.000000,249.000000 -18.000000C177.000000 -18.000000,145.000000 -67.000000,145.000000 -129.000000C145.000000 -158.000000,159.000000 -267.000000,211.000000 -336.000000C249.000000 -385.000000,301.000000 -413.000000,351.000000 -413.000000C365.000000 -413.000000,413.000000 -411.000000,438.000000 -383.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_109">
      <path style="fill-rule: evenodd;" d="M434.000000 -81.000000C429.000000 -61.000000,420.000000 -27.000000,420.000000 -22.000000C420.000000 -0.000000,438.000000 10.000000,454.000000 10.000000C472.000000 10.000000,488.000000 -3.000000,493.000000 -12.000000C498.000000 -21.000000,506.000000 -53.000000,511.000000 -74.000000C516.000000 -93.000000,527.000000 -139.000000,533.000000 -164.000000C539.000000 -186.000000,545.000000 -208.000000,550.000000 -231.000000C561.000000 -274.000000,561.000000 -276.000000,581.000000 -307.000000C613.000000 -356.000000,663.000000 -413.000000,741.000000 -413.000000C797.000000 -413.000000,800.000000 -367.000000,800.000000 -343.000000C800.000000 -283.000000,757.000000 -172.000000,741.000000 -130.000000C730.000000 -102.000000,726.000000 -93.000000,726.000000 -76.000000C726.000000 -23.000000,770.000000 10.000000,821.000000 10.000000C921.000000 10.000000,965.000000 -128.000000,965.000000 -143.000000C965.000000 -156.000000,952.000000 -156.000000,949.000000 -156.000000C935.000000 -156.000000,934.000000 -150.000000,930.000000 -139.000000C907.000000 -59.000000,864.000000 -18.000000,824.000000 -18.000000C803.000000 -18.000000,799.000000 -32.000000,799.000000 -53.000000C799.000000 -76.000000,804.000000 -89.000000,822.000000 -134.000000C834.000000 -165.000000,875.000000 -271.000000,875.000000 -327.000000C875.000000 -343.000000,875.000000 -385.000000,838.000000 -414.000000C821.000000 -427.000000,792.000000 -441.000000,745.000000 -441.000000C655.000000 -441.000000,600.000000 -382.000000,568.000000 -340.000000C560.000000 -425.000000,489.000000 -441.000000,438.000000 -441.000000C355.000000 -441.000000,299.000000 -390.000000,269.000000 -350.000000C262.000000 -419.000000,203.000000 -441.000000,162.000000 -441.000000C119.000000 -441.000000,96.000000 -410.000000,83.000000 -387.000000C61.000000 -350.000000,47.000000 -293.000000,47.000000 -288.000000C47.000000 -275.000000,61.000000 -275.000000,64.000000 -275.000000C78.000000 -275.000000,79.000000 -278.000000,86.000000 -305.000000C101.000000 -364.000000,120.000000 -413.000000,159.000000 -413.000000C185.000000 -413.000000,192.000000 -391.000000,192.000000 -364.000000C192.000000 -345.000000,183.000000 -308.000000,176.000000 -281.000000C169.000000 -254.000000,159.000000 -213.000000,154.000000 -191.000000L122.000000 -63.000000C118.000000 -50.000000,112.000000 -25.000000,112.000000 -22.000000C112.000000 -0.000000,130.000000 10.000000,146.000000 10.000000C164.000000 10.000000,180.000000 -3.000000,185.000000 -12.000000C190.000000 -21.000000,198.000000 -53.000000,203.000000 -74.000000C208.000000 -93.000000,219.000000 -139.000000,225.000000 -164.000000C231.000000 -186.000000,237.000000 -208.000000,242.000000 -231.000000C253.000000 -272.000000,255.000000 -280.000000,284.000000 -321.000000C312.000000 -361.000000,359.000000 -413.000000,434.000000 -413.000000C492.000000 -413.000000,493.000000 -362.000000,493.000000 -343.000000C493.000000 -318.000000,490.000000 -305.000000,476.000000 -249.000000"></path>
    </g>
    <g transform="scale(0.006974,0.006974)" id="GLYPHcmmi7_115">
      <path style="fill-rule: evenodd;" d="M431.000000 -376.000000C405.000000 -370.000000,389.000000 -349.000000,389.000000 -329.000000C389.000000 -306.000000,409.000000 -297.000000,422.000000 -297.000000C432.000000 -297.000000,470.000000 -303.000000,470.000000 -354.000000C470.000000 -419.000000,398.000000 -441.000000,337.000000 -441.000000C181.000000 -441.000000,153.000000 -326.000000,153.000000 -295.000000C153.000000 -258.000000,174.000000 -234.000000,188.000000 -222.000000C214.000000 -202.000000,232.000000 -198.000000,301.000000 -186.000000C322.000000 -182.000000,386.000000 -170.000000,386.000000 -120.000000C386.000000 -103.000000,375.000000 -65.000000,333.000000 -40.000000C294.000000 -18.000000,245.000000 -18.000000,233.000000 -18.000000C193.000000 -18.000000,136.000000 -27.000000,113.000000 -60.000000C146.000000 -64.000000,168.000000 -89.000000,168.000000 -117.000000C168.000000 -142.000000,150.000000 -154.000000,129.000000 -154.000000C100.000000 -154.000000,71.000000 -131.000000,71.000000 -87.000000C71.000000 -27.000000,135.000000 10.000000,232.000000 10.000000C416.000000 10.000000,450.000000 -116.000000,450.000000 -155.000000C450.000000 -247.000000,349.000000 -265.000000,312.000000 -272.000000C303.000000 -274.000000,278.000000 -278.000000,272.000000 -280.000000C235.000000 -287.000000,217.000000 -308.000000,217.000000 -330.000000C217.000000 -353.000000,235.000000 -380.000000,257.000000 -394.000000C284.000000 -411.000000,319.000000 -413.000000,336.000000 -413.000000C357.000000 -413.000000,409.000000 -410.000000,431.000000 -376.000000"></path>
    </g>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmbx10_80">
      <path style="fill-rule: evenodd;" d="M289.000000 -302.000000L466.000000 -302.000000C605.000000 -302.000000,721.000000 -374.000000,721.000000 -491.000000C721.000000 -601.000000,622.000000 -686.000000,456.000000 -686.000000L39.000000 -686.000000L39.000000 -639.000000L147.000000 -639.000000L147.000000 -47.000000L39.000000 -47.000000L39.000000 -0.000000L218.000000 -0.000000L77.000000 -3.000000L175.000000 -3.000000L218.000000 -3.000000L261.000000 -3.000000L359.000000 -3.000000L397.000000 -0.000000L397.000000 -47.000000L289.000000 -47.000000M417.000000 -343.000000L283.000000 -343.000000L283.000000 -639.000000L418.000000 -639.000000C568.000000 -639.000000,568.000000 -563.000000,568.000000 -491.000000C568.000000 -420.000000,568.000000 -343.000000,417.000000 -343.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.728516 5.708572)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi7_99"></use>
    <use xlink:href="#GLYPHcmmi7_99" x="3.573800"></use>
    <use xlink:href="#GLYPHcmmi7_115" x="7.147601"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,18.935150 12.704590)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmbx10_80"></use>
  </g>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,31.465912 15.095642)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi7_109"></use>
    <use xlink:href="#GLYPHcmmi7_99" x="7.096230"></use>
    <use xlink:href="#GLYPHcmmi7_115" x="10.670030"></use>
  </g>
</svg></span>, see <a href="toc_transformations_poses.html">Transformations / Poses</a>
and <code>“Solution Guide III-C - 3D Vision”</code>.
Thus, the <a href="#Pose"><i><code><span data-if="hdevelop" style="display:inline">Pose</span><span data-if="c" style="display:none">Pose</span><span data-if="cpp" style="display:none">Pose</span><span data-if="com" style="display:none">Pose</span><span data-if="dotnet" style="display:none">pose</span><span data-if="python" style="display:none">pose</span></code></i></a> describes the position
and orientation of the world coordinate system with respect to the
camera coordinate system.
The internal camera parameters <a href="#CamParam"><i><code><span data-if="hdevelop" style="display:inline">CamParam</span><span data-if="c" style="display:none">CamParam</span><span data-if="cpp" style="display:none">CamParam</span><span data-if="com" style="display:none">CamParam</span><span data-if="dotnet" style="display:none">camParam</span><span data-if="python" style="display:none">cam_param</span></code></i></a> describe the
projection characteristics of the camera (see
<a href="toc_calibration.html">Calibration</a>).
</p>
<p>There are some generic parameters that can optionally be used to
influence the projection.  If desired, these parameters and their
corresponding values can be specified by using <a href="#GenParamName"><i><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></i></a>
and <a href="#GenParamValue"><i><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></i></a>, respectively.  The following values for
<a href="#GenParamName"><i><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></i></a> are possible:
</p>
<dl class="generic">


<dt><b><i><span data-if="hdevelop" style="display:inline">'data'</span><span data-if="c" style="display:none">"data"</span><span data-if="cpp" style="display:none">"data"</span><span data-if="com" style="display:none">"data"</span><span data-if="dotnet" style="display:none">"data"</span><span data-if="python" style="display:none">"data"</span></i>:</b></dt>
<dd>
<p>
 This parameter specifies which geometric data
of the 3D object model should be projected. If <i><span data-if="hdevelop" style="display:inline">'data'</span><span data-if="c" style="display:none">"data"</span><span data-if="cpp" style="display:none">"data"</span><span data-if="com" style="display:none">"data"</span><span data-if="dotnet" style="display:none">"data"</span><span data-if="python" style="display:none">"data"</span></i> is set
to <i><span data-if="hdevelop" style="display:inline">'faces'</span><span data-if="c" style="display:none">"faces"</span><span data-if="cpp" style="display:none">"faces"</span><span data-if="com" style="display:none">"faces"</span><span data-if="dotnet" style="display:none">"faces"</span><span data-if="python" style="display:none">"faces"</span></i>, the faces of the 3D object model are projected.
The faces are represented by their border lines in
<a href="#ModelContours"><i><code><span data-if="hdevelop" style="display:inline">ModelContours</span><span data-if="c" style="display:none">ModelContours</span><span data-if="cpp" style="display:none">ModelContours</span><span data-if="com" style="display:none">ModelContours</span><span data-if="dotnet" style="display:none">modelContours</span><span data-if="python" style="display:none">model_contours</span></code></i></a>. If <i><span data-if="hdevelop" style="display:inline">'data'</span><span data-if="c" style="display:none">"data"</span><span data-if="cpp" style="display:none">"data"</span><span data-if="com" style="display:none">"data"</span><span data-if="dotnet" style="display:none">"data"</span><span data-if="python" style="display:none">"data"</span></i> is set
to <i><span data-if="hdevelop" style="display:inline">'lines'</span><span data-if="c" style="display:none">"lines"</span><span data-if="cpp" style="display:none">"lines"</span><span data-if="com" style="display:none">"lines"</span><span data-if="dotnet" style="display:none">"lines"</span><span data-if="python" style="display:none">"lines"</span></i>, the 3D lines of the 3D object model are projected.
If  <i><span data-if="hdevelop" style="display:inline">'data'</span><span data-if="c" style="display:none">"data"</span><span data-if="cpp" style="display:none">"data"</span><span data-if="com" style="display:none">"data"</span><span data-if="dotnet" style="display:none">"data"</span><span data-if="python" style="display:none">"data"</span></i> is set to
<i><span data-if="hdevelop" style="display:inline">'points'</span><span data-if="c" style="display:none">"points"</span><span data-if="cpp" style="display:none">"points"</span><span data-if="com" style="display:none">"points"</span><span data-if="dotnet" style="display:none">"points"</span><span data-if="python" style="display:none">"points"</span></i>, the points of the 3D object model are
projected. The projected points can be represented in
<a href="#ModelContours"><i><code><span data-if="hdevelop" style="display:inline">ModelContours</span><span data-if="c" style="display:none">ModelContours</span><span data-if="cpp" style="display:none">ModelContours</span><span data-if="com" style="display:none">ModelContours</span><span data-if="dotnet" style="display:none">modelContours</span><span data-if="python" style="display:none">model_contours</span></code></i></a> in different ways.  The point representation
can be selected by using the generic parameter <i><span data-if="hdevelop" style="display:inline">'point_shape'</span><span data-if="c" style="display:none">"point_shape"</span><span data-if="cpp" style="display:none">"point_shape"</span><span data-if="com" style="display:none">"point_shape"</span><span data-if="dotnet" style="display:none">"point_shape"</span><span data-if="python" style="display:none">"point_shape"</span></i>
(see below). Finally, if <i><span data-if="hdevelop" style="display:inline">'data'</span><span data-if="c" style="display:none">"data"</span><span data-if="cpp" style="display:none">"data"</span><span data-if="com" style="display:none">"data"</span><span data-if="dotnet" style="display:none">"data"</span><span data-if="python" style="display:none">"data"</span></i> is set to <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>,
HALCON automatically chooses the most descriptive geometry data
that is available in the 3D object model for visualization. </p>
<p>
<span class="pardesc"><span class="parcat">List of values:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>, <i><span data-if="hdevelop" style="display:inline">'faces'</span><span data-if="c" style="display:none">"faces"</span><span data-if="cpp" style="display:none">"faces"</span><span data-if="com" style="display:none">"faces"</span><span data-if="dotnet" style="display:none">"faces"</span><span data-if="python" style="display:none">"faces"</span></i>,
<i><span data-if="hdevelop" style="display:inline">'lines'</span><span data-if="c" style="display:none">"lines"</span><span data-if="cpp" style="display:none">"lines"</span><span data-if="com" style="display:none">"lines"</span><span data-if="dotnet" style="display:none">"lines"</span><span data-if="python" style="display:none">"lines"</span></i>, <i><span data-if="hdevelop" style="display:inline">'points'</span><span data-if="c" style="display:none">"points"</span><span data-if="cpp" style="display:none">"points"</span><span data-if="com" style="display:none">"points"</span><span data-if="dotnet" style="display:none">"points"</span><span data-if="python" style="display:none">"points"</span></i>. </p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span></i>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'point_shape'</span><span data-if="c" style="display:none">"point_shape"</span><span data-if="cpp" style="display:none">"point_shape"</span><span data-if="com" style="display:none">"point_shape"</span><span data-if="dotnet" style="display:none">"point_shape"</span><span data-if="python" style="display:none">"point_shape"</span></i>:</b></dt>
<dd>
<p>
 This parameter specifies how
points are represented in the output contour <a href="#ModelContours"><i><code><span data-if="hdevelop" style="display:inline">ModelContours</span><span data-if="c" style="display:none">ModelContours</span><span data-if="cpp" style="display:none">ModelContours</span><span data-if="com" style="display:none">ModelContours</span><span data-if="dotnet" style="display:none">modelContours</span><span data-if="python" style="display:none">model_contours</span></code></i></a>.
Consequently, this parameter only has an effect if the points of the
3D object model are selected for projection (see above).
If <i><span data-if="hdevelop" style="display:inline">'point_shape'</span><span data-if="c" style="display:none">"point_shape"</span><span data-if="cpp" style="display:none">"point_shape"</span><span data-if="com" style="display:none">"point_shape"</span><span data-if="dotnet" style="display:none">"point_shape"</span><span data-if="python" style="display:none">"point_shape"</span></i> is set to <i><span data-if="hdevelop" style="display:inline">'circle'</span><span data-if="c" style="display:none">"circle"</span><span data-if="cpp" style="display:none">"circle"</span><span data-if="com" style="display:none">"circle"</span><span data-if="dotnet" style="display:none">"circle"</span><span data-if="python" style="display:none">"circle"</span></i>, points are
represented by circles, whereas if <i><span data-if="hdevelop" style="display:inline">'point_shape'</span><span data-if="c" style="display:none">"point_shape"</span><span data-if="cpp" style="display:none">"point_shape"</span><span data-if="com" style="display:none">"point_shape"</span><span data-if="dotnet" style="display:none">"point_shape"</span><span data-if="python" style="display:none">"point_shape"</span></i> is set to
<i><span data-if="hdevelop" style="display:inline">'cross'</span><span data-if="c" style="display:none">"cross"</span><span data-if="cpp" style="display:none">"cross"</span><span data-if="com" style="display:none">"cross"</span><span data-if="dotnet" style="display:none">"cross"</span><span data-if="python" style="display:none">"cross"</span></i>, points are represented by crosses.  In both cases
the size of the points (i.e., the size of the circles or the size
of the crosses) can be specified by the generic parameter
<i><span data-if="hdevelop" style="display:inline">'point_size'</span><span data-if="c" style="display:none">"point_size"</span><span data-if="cpp" style="display:none">"point_size"</span><span data-if="com" style="display:none">"point_size"</span><span data-if="dotnet" style="display:none">"point_size"</span><span data-if="python" style="display:none">"point_size"</span></i> (see below). The orientation of the crosses
can be specified by the generic parameter
<i><span data-if="hdevelop" style="display:inline">'point_orientation'</span><span data-if="c" style="display:none">"point_orientation"</span><span data-if="cpp" style="display:none">"point_orientation"</span><span data-if="com" style="display:none">"point_orientation"</span><span data-if="dotnet" style="display:none">"point_orientation"</span><span data-if="python" style="display:none">"point_orientation"</span></i> (see below). </p>
<p>
<span class="pardesc"><span class="parcat">List of values:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'circle'</span><span data-if="c" style="display:none">"circle"</span><span data-if="cpp" style="display:none">"circle"</span><span data-if="com" style="display:none">"circle"</span><span data-if="dotnet" style="display:none">"circle"</span><span data-if="python" style="display:none">"circle"</span></i>, <i><span data-if="hdevelop" style="display:inline">'cross'</span><span data-if="c" style="display:none">"cross"</span><span data-if="cpp" style="display:none">"cross"</span><span data-if="com" style="display:none">"cross"</span><span data-if="dotnet" style="display:none">"cross"</span><span data-if="python" style="display:none">"cross"</span></i>. </p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'circle'</span><span data-if="c" style="display:none">"circle"</span><span data-if="cpp" style="display:none">"circle"</span><span data-if="com" style="display:none">"circle"</span><span data-if="dotnet" style="display:none">"circle"</span><span data-if="python" style="display:none">"circle"</span></i>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'point_size'</span><span data-if="c" style="display:none">"point_size"</span><span data-if="cpp" style="display:none">"point_size"</span><span data-if="com" style="display:none">"point_size"</span><span data-if="dotnet" style="display:none">"point_size"</span><span data-if="python" style="display:none">"point_size"</span></i>:</b></dt>
<dd>
<p>
 This parameter specifies the size
of the point representation in the output contour
<a href="#ModelContours"><i><code><span data-if="hdevelop" style="display:inline">ModelContours</span><span data-if="c" style="display:none">ModelContours</span><span data-if="cpp" style="display:none">ModelContours</span><span data-if="com" style="display:none">ModelContours</span><span data-if="dotnet" style="display:none">modelContours</span><span data-if="python" style="display:none">model_contours</span></code></i></a>, i.e., the size of the circles or the size
of the crosses depending on the selected <i><span data-if="hdevelop" style="display:inline">'point_shape'</span><span data-if="c" style="display:none">"point_shape"</span><span data-if="cpp" style="display:none">"point_shape"</span><span data-if="com" style="display:none">"point_shape"</span><span data-if="dotnet" style="display:none">"point_shape"</span><span data-if="python" style="display:none">"point_shape"</span></i>.
Consequently, this parameter only has an effect if the points of
the 3D object model are selected for projection (see above).
The size must be given in pixel units. If <i><span data-if="hdevelop" style="display:inline">'point_size'</span><span data-if="c" style="display:none">"point_size"</span><span data-if="cpp" style="display:none">"point_size"</span><span data-if="com" style="display:none">"point_size"</span><span data-if="dotnet" style="display:none">"point_size"</span><span data-if="python" style="display:none">"point_size"</span></i>
is set to <i>0</i>, each point is represented by a contour
that contains a single contour point. </p>
<p>
<span class="pardesc"><span class="parcat">Suggested values:
      </span></span> <i>0</i>, <i>2</i>, <i>4</i>. </p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i>4</i>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'point_orientation'</span><span data-if="c" style="display:none">"point_orientation"</span><span data-if="cpp" style="display:none">"point_orientation"</span><span data-if="com" style="display:none">"point_orientation"</span><span data-if="dotnet" style="display:none">"point_orientation"</span><span data-if="python" style="display:none">"point_orientation"</span></i>:</b></dt>
<dd>
<p>
 This parameter specifies the
orientation of the crosses in radians.  Consequently, this
parameter only has an effect if the points of the 3D object model
are selected for projection and <i><span data-if="hdevelop" style="display:inline">'point_shape'</span><span data-if="c" style="display:none">"point_shape"</span><span data-if="cpp" style="display:none">"point_shape"</span><span data-if="com" style="display:none">"point_shape"</span><span data-if="dotnet" style="display:none">"point_shape"</span><span data-if="python" style="display:none">"point_shape"</span></i> is set
to <i><span data-if="hdevelop" style="display:inline">'cross'</span><span data-if="c" style="display:none">"cross"</span><span data-if="cpp" style="display:none">"cross"</span><span data-if="com" style="display:none">"cross"</span><span data-if="dotnet" style="display:none">"cross"</span><span data-if="python" style="display:none">"cross"</span></i> (see above). </p>
<p>
<span class="pardesc"><span class="parcat">Suggested values:
      </span></span> <i>0</i>, <i>0.39</i>, <i>0.79</i>. </p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i>0.79</i>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'union_adjacent_contours'</span><span data-if="c" style="display:none">"union_adjacent_contours"</span><span data-if="cpp" style="display:none">"union_adjacent_contours"</span><span data-if="com" style="display:none">"union_adjacent_contours"</span><span data-if="dotnet" style="display:none">"union_adjacent_contours"</span><span data-if="python" style="display:none">"union_adjacent_contours"</span></i>:</b></dt>
<dd>
<p>
 This parameter specifies if
adjacent projected contours should be joined or not.
Activating this option is equivalent to calling
<a href="union_adjacent_contours_xld.html"><code><span data-if="hdevelop" style="display:inline">union_adjacent_contours_xld</span><span data-if="c" style="display:none">union_adjacent_contours_xld</span><span data-if="cpp" style="display:none">UnionAdjacentContoursXld</span><span data-if="com" style="display:none">UnionAdjacentContoursXld</span><span data-if="dotnet" style="display:none">UnionAdjacentContoursXld</span><span data-if="python" style="display:none">union_adjacent_contours_xld</span></code></a> after this operator, but significantly
faster. </p>
<p>
<span class="pardesc"><span class="parcat">List of values:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>, <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>. </p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'hidden_surface_removal'</span><span data-if="c" style="display:none">"hidden_surface_removal"</span><span data-if="cpp" style="display:none">"hidden_surface_removal"</span><span data-if="com" style="display:none">"hidden_surface_removal"</span><span data-if="dotnet" style="display:none">"hidden_surface_removal"</span><span data-if="python" style="display:none">"hidden_surface_removal"</span></i>:</b></dt>
<dd>
<p>
 This parameter can be
used to switch on or off the removal of hidden surfaces. If
<i><span data-if="hdevelop" style="display:inline">'hidden_surface_removal'</span><span data-if="c" style="display:none">"hidden_surface_removal"</span><span data-if="cpp" style="display:none">"hidden_surface_removal"</span><span data-if="com" style="display:none">"hidden_surface_removal"</span><span data-if="dotnet" style="display:none">"hidden_surface_removal"</span><span data-if="python" style="display:none">"hidden_surface_removal"</span></i> is set to <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>, only those
projected edges are returned that are not hidden by faces of the 3D
object model. If <i><span data-if="hdevelop" style="display:inline">'hidden_surface_removal'</span><span data-if="c" style="display:none">"hidden_surface_removal"</span><span data-if="cpp" style="display:none">"hidden_surface_removal"</span><span data-if="com" style="display:none">"hidden_surface_removal"</span><span data-if="dotnet" style="display:none">"hidden_surface_removal"</span><span data-if="python" style="display:none">"hidden_surface_removal"</span></i> is set to
<i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>, all projected edges are returned. This is faster
than a projection with <i><span data-if="hdevelop" style="display:inline">'hidden_surface_removal'</span><span data-if="c" style="display:none">"hidden_surface_removal"</span><span data-if="cpp" style="display:none">"hidden_surface_removal"</span><span data-if="com" style="display:none">"hidden_surface_removal"</span><span data-if="dotnet" style="display:none">"hidden_surface_removal"</span><span data-if="python" style="display:none">"hidden_surface_removal"</span></i> set to
<i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>. </p>
<p>
If the system variable (see <a href="set_system.html"><code><span data-if="hdevelop" style="display:inline">set_system</span><span data-if="c" style="display:none">set_system</span><span data-if="cpp" style="display:none">SetSystem</span><span data-if="com" style="display:none">SetSystem</span><span data-if="dotnet" style="display:none">SetSystem</span><span data-if="python" style="display:none">set_system</span></code></a>)
<i><span data-if="hdevelop" style="display:inline">'opengl_hidden_surface_removal_enable'</span><span data-if="c" style="display:none">"opengl_hidden_surface_removal_enable"</span><span data-if="cpp" style="display:none">"opengl_hidden_surface_removal_enable"</span><span data-if="com" style="display:none">"opengl_hidden_surface_removal_enable"</span><span data-if="dotnet" style="display:none">"opengl_hidden_surface_removal_enable"</span><span data-if="python" style="display:none">"opengl_hidden_surface_removal_enable"</span></i> is set to <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>
(which is the default if it is available) and <i><span data-if="hdevelop" style="display:inline">'hidden_surface_removal'</span><span data-if="c" style="display:none">"hidden_surface_removal"</span><span data-if="cpp" style="display:none">"hidden_surface_removal"</span><span data-if="com" style="display:none">"hidden_surface_removal"</span><span data-if="dotnet" style="display:none">"hidden_surface_removal"</span><span data-if="python" style="display:none">"hidden_surface_removal"</span></i>
is set to <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>, the projection of the model is accelerated
using the graphics card.
Depending on the graphics card this is significantly faster than the non
accelerated algorithm. Be aware that the results of the OpenGL projection
are slightly different compared to the analytic projection. Notable, only
the contours visible through <a href="#CamParam"><i><code><span data-if="hdevelop" style="display:inline">CamParam</span><span data-if="c" style="display:none">CamParam</span><span data-if="cpp" style="display:none">CamParam</span><span data-if="com" style="display:none">CamParam</span><span data-if="dotnet" style="display:none">camParam</span><span data-if="python" style="display:none">cam_param</span></code></i></a> are projected in this
mode.</p>
<p>
<span class="pardesc"><span class="parcat">List of values:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>, <i><span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span></i>.</p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i><span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span></i>.
</p>
</dd>

<dt><b><i><span data-if="hdevelop" style="display:inline">'min_face_angle'</span><span data-if="c" style="display:none">"min_face_angle"</span><span data-if="cpp" style="display:none">"min_face_angle"</span><span data-if="com" style="display:none">"min_face_angle"</span><span data-if="dotnet" style="display:none">"min_face_angle"</span><span data-if="python" style="display:none">"min_face_angle"</span></i>:</b></dt>
<dd>
<p>
 3D edges are only projected if the
angle between the two 3D faces that are incident with the 3D edge
is at least <i><span data-if="hdevelop" style="display:inline">'min_face_angle'</span><span data-if="c" style="display:none">"min_face_angle"</span><span data-if="cpp" style="display:none">"min_face_angle"</span><span data-if="com" style="display:none">"min_face_angle"</span><span data-if="dotnet" style="display:none">"min_face_angle"</span><span data-if="python" style="display:none">"min_face_angle"</span></i>. If <i><span data-if="hdevelop" style="display:inline">'min_face_angle'</span><span data-if="c" style="display:none">"min_face_angle"</span><span data-if="cpp" style="display:none">"min_face_angle"</span><span data-if="com" style="display:none">"min_face_angle"</span><span data-if="dotnet" style="display:none">"min_face_angle"</span><span data-if="python" style="display:none">"min_face_angle"</span></i>
is set to <i>0.0</i>, all edges are projected. If
<i><span data-if="hdevelop" style="display:inline">'min_face_angle'</span><span data-if="c" style="display:none">"min_face_angle"</span><span data-if="cpp" style="display:none">"min_face_angle"</span><span data-if="com" style="display:none">"min_face_angle"</span><span data-if="dotnet" style="display:none">"min_face_angle"</span><span data-if="python" style="display:none">"min_face_angle"</span></i> is set to <span title="2" style="vertical-align:-0.0991602em" class="math"><!-- Created by MetaPost 1.902 on 2023.05.15:2033 --><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="0.729643em" height="0.573321em" viewBox="0 0 11.674286 9.173141">
<!-- Original BoundingBox: -5.837143 -4.586578 5.837143 4.586563 -->
  <defs>
    <g transform="scale(0.009963,0.009963)" id="GLYPHcmmi10_25">
      <path style="fill-rule: evenodd;" d="M265.000000 -373.000000L378.000000 -373.000000C345.000000 -225.000000,336.000000 -182.000000,336.000000 -115.000000C336.000000 -100.000000,336.000000 -73.000000,344.000000 -39.000000C354.000000 5.000000,365.000000 11.000000,380.000000 11.000000C400.000000 11.000000,421.000000 -7.000000,421.000000 -27.000000C421.000000 -33.000000,421.000000 -35.000000,415.000000 -49.000000C386.000000 -121.000000,386.000000 -186.000000,386.000000 -214.000000C386.000000 -267.000000,393.000000 -321.000000,404.000000 -373.000000L518.000000 -373.000000C531.000000 -373.000000,567.000000 -373.000000,567.000000 -407.000000C567.000000 -431.000000,546.000000 -431.000000,527.000000 -431.000000L192.000000 -431.000000C170.000000 -431.000000,132.000000 -431.000000,88.000000 -384.000000C53.000000 -345.000000,27.000000 -299.000000,27.000000 -294.000000C27.000000 -293.000000,27.000000 -284.000000,39.000000 -284.000000C47.000000 -284.000000,49.000000 -288.000000,55.000000 -296.000000C104.000000 -373.000000,162.000000 -373.000000,182.000000 -373.000000L239.000000 -373.000000C207.000000 -252.000000,153.000000 -131.000000,111.000000 -40.000000C103.000000 -25.000000,103.000000 -23.000000,103.000000 -16.000000C103.000000 3.000000,119.000000 11.000000,132.000000 11.000000C162.000000 11.000000,170.000000 -17.000000,182.000000 -54.000000C196.000000 -100.000000,196.000000 -102.000000,209.000000 -152.000000"></path>
    </g>
  </defs>
  <g transform="matrix(1.600006,-0.000000,-0.000000,1.600006,0.178848 7.586578)" style="fill: rgb(0.000000%,0.000000%,0.000000%);">
    <use xlink:href="#GLYPHcmmi10_25"></use>
  </g>
</svg></span> (equivalent to
180 degrees), only the silhouette of the 3D object model is returned.
This parameter can be used to suppress edges within curved
surfaces, e.g., the surface of a cylinder or cone. </p>
<p>
<span class="pardesc"><span class="parcat">Suggested values:
      </span></span> <i>0.17</i>, <i>0.26</i>,
<i>0.35</i>, <i>0.52</i>. </p>
<p>
<span class="pardesc"><span class="parcat">Default:
      </span></span> <i>0.52</i>.
</p>
</dd>
</dl>
<h2 id="sec_attention">注意</h2>
<p>Cameras with hypercentric lenses are not supported.
For displaying large faces with a non-zero distortion
in <a href="#CamParam"><i><code><span data-if="hdevelop" style="display:inline">CamParam</span><span data-if="c" style="display:none">CamParam</span><span data-if="cpp" style="display:none">CamParam</span><span data-if="com" style="display:none">CamParam</span><span data-if="dotnet" style="display:none">camParam</span><span data-if="python" style="display:none">cam_param</span></code></i></a>, note that the distortion is only applied to the
points of the model. In the projection, these points are subsequently
connected by straight lines. For a good approximation of the distorted
lines, please use a triangulation with sufficiently small triangles.</p>
<h2 id="sec_execution">运行信息</h2>
<ul>
  <li>多线程类型:可重入(与非独占操作符并行运行)。</li>
<li>多线程作用域:全局(可以从任何线程调用)。</li>
  <li>未经并行化处理。</li>
</ul>
<h2 id="sec_parameters">参数表</h2>
  <div class="par">
<div class="parhead">
<span id="ModelContours" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ModelContours</span><span data-if="c" style="display:none">ModelContours</span><span data-if="cpp" style="display:none">ModelContours</span><span data-if="com" style="display:none">ModelContours</span><span data-if="dotnet" style="display:none">modelContours</span><span data-if="python" style="display:none">model_contours</span></code></b> (output_object)  </span><span>xld_cont(-array) <code>→</code> <span data-if="hdevelop" style="display:inline">object</span><span data-if="dotnet" style="display:none"><a href="HXLDCont.html">HXLDCont</a></span><span data-if="python" style="display:none">HObject</span><span data-if="cpp" style="display:none"><a href="HXLDCont.html">HXLDCont</a></span><span data-if="c" style="display:none">Hobject *</span></span>
</div>
<p class="pardesc">Projected model contours.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="ObjectModel3D" class="parname"><b><code><span data-if="hdevelop" style="display:inline">ObjectModel3D</span><span data-if="c" style="display:none">ObjectModel3D</span><span data-if="cpp" style="display:none">ObjectModel3D</span><span data-if="com" style="display:none">ObjectModel3D</span><span data-if="dotnet" style="display:none">objectModel3D</span><span data-if="python" style="display:none">object_model_3d</span></code></b> (input_control)  </span><span>object_model_3d <code>→</code> <span data-if="dotnet" style="display:none"><a href="HObjectModel3D.html">HObjectModel3D</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">HHandle</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (handle)</span><span data-if="dotnet" style="display:none"> (<i>IntPtr</i>)</span><span data-if="cpp" style="display:none"> (<i>HHandle</i>)</span><span data-if="c" style="display:none"> (<i>handle</i>)</span></span>
</div>
<p class="pardesc">Handle of the 3D object model.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="CamParam" class="parname"><b><code><span data-if="hdevelop" style="display:inline">CamParam</span><span data-if="c" style="display:none">CamParam</span><span data-if="cpp" style="display:none">CamParam</span><span data-if="com" style="display:none">CamParam</span><span data-if="dotnet" style="display:none">camParam</span><span data-if="python" style="display:none">cam_param</span></code></b> (input_control)  </span><span>campar <code>→</code> <span data-if="dotnet" style="display:none"><a href="HCamPar.html">HCamPar</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[Union[int, float, str]]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real / </span><span data-if="hdevelop" style="display:inline">integer / </span><span data-if="hdevelop" style="display:inline">string)</span><span data-if="dotnet" style="display:none"> (<i>double</i> / </span><span data-if="dotnet" style="display:none">int / </span><span data-if="dotnet" style="display:none">long / </span><span data-if="dotnet" style="display:none">string)</span><span data-if="cpp" style="display:none"> (<i>double</i> / </span><span data-if="cpp" style="display:none">Hlong / </span><span data-if="cpp" style="display:none">HString)</span><span data-if="c" style="display:none"> (<i>double</i> / </span><span data-if="c" style="display:none">Hlong / </span><span data-if="c" style="display:none">char*)</span></span>
</div>
<p class="pardesc">Internal camera parameters.</p>
</div>
  <div class="par">
<div class="parhead">
<span id="Pose" class="parname"><b><code><span data-if="hdevelop" style="display:inline">Pose</span><span data-if="c" style="display:none">Pose</span><span data-if="cpp" style="display:none">Pose</span><span data-if="com" style="display:none">Pose</span><span data-if="dotnet" style="display:none">pose</span><span data-if="python" style="display:none">pose</span></code></b> (input_control)  </span><span>pose <code>→</code> <span data-if="dotnet" style="display:none"><a href="HPose.html">HPose</a>, </span><span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">Sequence[Union[int, float]]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (real / </span><span data-if="hdevelop" style="display:inline">integer)</span><span data-if="dotnet" style="display:none"> (<i>double</i> / </span><span data-if="dotnet" style="display:none">int / </span><span data-if="dotnet" style="display:none">long)</span><span data-if="cpp" style="display:none"> (<i>double</i> / </span><span data-if="cpp" style="display:none">Hlong)</span><span data-if="c" style="display:none"> (<i>double</i> / </span><span data-if="c" style="display:none">Hlong)</span></span>
</div>
<p class="pardesc">3D pose of the world coordinate system in camera
coordinates.</p>
<p class="pardesc"><span class="parcat">Number of elements:
      </span>Pose == 7</p>
</div>
  <div class="par">
<div class="parhead">
<span id="GenParamName" class="parname"><b><code><span data-if="hdevelop" style="display:inline">GenParamName</span><span data-if="c" style="display:none">GenParamName</span><span data-if="cpp" style="display:none">GenParamName</span><span data-if="com" style="display:none">GenParamName</span><span data-if="dotnet" style="display:none">genParamName</span><span data-if="python" style="display:none">gen_param_name</span></code></b> (input_control)  </span><span>string(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[str]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string)</span><span data-if="dotnet" style="display:none"> (<i>string</i>)</span><span data-if="cpp" style="display:none"> (<i>HString</i>)</span><span data-if="c" style="display:none"> (<i>char*</i>)</span></span>
</div>
<p class="pardesc">Name of the generic parameter.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>[]</p>
<p class="pardesc"><span class="parcat">List of values:
      </span><span data-if="hdevelop" style="display:inline">'data'</span><span data-if="c" style="display:none">"data"</span><span data-if="cpp" style="display:none">"data"</span><span data-if="com" style="display:none">"data"</span><span data-if="dotnet" style="display:none">"data"</span><span data-if="python" style="display:none">"data"</span>, <span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span>, <span data-if="hdevelop" style="display:inline">'hidden_surface_removal'</span><span data-if="c" style="display:none">"hidden_surface_removal"</span><span data-if="cpp" style="display:none">"hidden_surface_removal"</span><span data-if="com" style="display:none">"hidden_surface_removal"</span><span data-if="dotnet" style="display:none">"hidden_surface_removal"</span><span data-if="python" style="display:none">"hidden_surface_removal"</span>, <span data-if="hdevelop" style="display:inline">'min_face_angle'</span><span data-if="c" style="display:none">"min_face_angle"</span><span data-if="cpp" style="display:none">"min_face_angle"</span><span data-if="com" style="display:none">"min_face_angle"</span><span data-if="dotnet" style="display:none">"min_face_angle"</span><span data-if="python" style="display:none">"min_face_angle"</span>, <span data-if="hdevelop" style="display:inline">'point_orientation'</span><span data-if="c" style="display:none">"point_orientation"</span><span data-if="cpp" style="display:none">"point_orientation"</span><span data-if="com" style="display:none">"point_orientation"</span><span data-if="dotnet" style="display:none">"point_orientation"</span><span data-if="python" style="display:none">"point_orientation"</span>, <span data-if="hdevelop" style="display:inline">'point_shape'</span><span data-if="c" style="display:none">"point_shape"</span><span data-if="cpp" style="display:none">"point_shape"</span><span data-if="com" style="display:none">"point_shape"</span><span data-if="dotnet" style="display:none">"point_shape"</span><span data-if="python" style="display:none">"point_shape"</span>, <span data-if="hdevelop" style="display:inline">'point_size'</span><span data-if="c" style="display:none">"point_size"</span><span data-if="cpp" style="display:none">"point_size"</span><span data-if="com" style="display:none">"point_size"</span><span data-if="dotnet" style="display:none">"point_size"</span><span data-if="python" style="display:none">"point_size"</span>, <span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span>, <span data-if="hdevelop" style="display:inline">'union_adjacent_contours'</span><span data-if="c" style="display:none">"union_adjacent_contours"</span><span data-if="cpp" style="display:none">"union_adjacent_contours"</span><span data-if="com" style="display:none">"union_adjacent_contours"</span><span data-if="dotnet" style="display:none">"union_adjacent_contours"</span><span data-if="python" style="display:none">"union_adjacent_contours"</span></p>
</div>
  <div class="par">
<div class="parhead">
<span id="GenParamValue" class="parname"><b><code><span data-if="hdevelop" style="display:inline">GenParamValue</span><span data-if="c" style="display:none">GenParamValue</span><span data-if="cpp" style="display:none">GenParamValue</span><span data-if="com" style="display:none">GenParamValue</span><span data-if="dotnet" style="display:none">genParamValue</span><span data-if="python" style="display:none">gen_param_value</span></code></b> (input_control)  </span><span>string(-array) <code>→</code> <span data-if="dotnet" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="python" style="display:none">MaybeSequence[Union[str, int, float]]</span><span data-if="cpp" style="display:none"><a href="HTuple.html">HTuple</a></span><span data-if="c" style="display:none">Htuple</span><span data-if="hdevelop" style="display:inline"> (string / </span><span data-if="hdevelop" style="display:inline">integer / </span><span data-if="hdevelop" style="display:inline">real)</span><span data-if="dotnet" style="display:none"> (<i>string</i> / </span><span data-if="dotnet" style="display:none">int / </span><span data-if="dotnet" style="display:none">long / </span><span data-if="dotnet" style="display:none">double)</span><span data-if="cpp" style="display:none"> (<i>HString</i> / </span><span data-if="cpp" style="display:none">Hlong / </span><span data-if="cpp" style="display:none">double)</span><span data-if="c" style="display:none"> (<i>char*</i> / </span><span data-if="c" style="display:none">Hlong / </span><span data-if="c" style="display:none">double)</span></span>
</div>
<p class="pardesc">Value of the generic parameter.</p>
<p class="pardesc"><span class="parcat">Default:
      </span>[]</p>
<p class="pardesc"><span class="parcat">Suggested values:
      </span>0.17, 0.26, 0.35, 0.52, <span data-if="hdevelop" style="display:inline">'true'</span><span data-if="c" style="display:none">"true"</span><span data-if="cpp" style="display:none">"true"</span><span data-if="com" style="display:none">"true"</span><span data-if="dotnet" style="display:none">"true"</span><span data-if="python" style="display:none">"true"</span>, <span data-if="hdevelop" style="display:inline">'false'</span><span data-if="c" style="display:none">"false"</span><span data-if="cpp" style="display:none">"false"</span><span data-if="com" style="display:none">"false"</span><span data-if="dotnet" style="display:none">"false"</span><span data-if="python" style="display:none">"false"</span>, <span data-if="hdevelop" style="display:inline">'auto'</span><span data-if="c" style="display:none">"auto"</span><span data-if="cpp" style="display:none">"auto"</span><span data-if="com" style="display:none">"auto"</span><span data-if="dotnet" style="display:none">"auto"</span><span data-if="python" style="display:none">"auto"</span>, <span data-if="hdevelop" style="display:inline">'points'</span><span data-if="c" style="display:none">"points"</span><span data-if="cpp" style="display:none">"points"</span><span data-if="com" style="display:none">"points"</span><span data-if="dotnet" style="display:none">"points"</span><span data-if="python" style="display:none">"points"</span>, <span data-if="hdevelop" style="display:inline">'faces'</span><span data-if="c" style="display:none">"faces"</span><span data-if="cpp" style="display:none">"faces"</span><span data-if="com" style="display:none">"faces"</span><span data-if="dotnet" style="display:none">"faces"</span><span data-if="python" style="display:none">"faces"</span>, <span data-if="hdevelop" style="display:inline">'lines'</span><span data-if="c" style="display:none">"lines"</span><span data-if="cpp" style="display:none">"lines"</span><span data-if="com" style="display:none">"lines"</span><span data-if="dotnet" style="display:none">"lines"</span><span data-if="python" style="display:none">"lines"</span>, <span data-if="hdevelop" style="display:inline">'circle'</span><span data-if="c" style="display:none">"circle"</span><span data-if="cpp" style="display:none">"circle"</span><span data-if="com" style="display:none">"circle"</span><span data-if="dotnet" style="display:none">"circle"</span><span data-if="python" style="display:none">"circle"</span>, <span data-if="hdevelop" style="display:inline">'cross'</span><span data-if="c" style="display:none">"cross"</span><span data-if="cpp" style="display:none">"cross"</span><span data-if="com" style="display:none">"cross"</span><span data-if="dotnet" style="display:none">"cross"</span><span data-if="python" style="display:none">"cross"</span>, 1, 2, 3, 4, 0.785398</p>
</div>
<h2 id="sec_result">结果</h2>
<p><code><span data-if="hdevelop" style="display:inline">project_object_model_3d</span><span data-if="c" style="display:none">project_object_model_3d</span><span data-if="cpp" style="display:none">ProjectObjectModel3d</span><span data-if="com" style="display:none">ProjectObjectModel3d</span><span data-if="dotnet" style="display:none">ProjectObjectModel3d</span><span data-if="python" style="display:none">project_object_model_3d</span></code> returns <TT>2</TT> (
      <TT>H_MSG_TRUE</TT>)
     if all parameters are
correct. 如有必要，将引发异常。  If the geometric
data that was selected for the projection is not available in the
3D object model, the error 9514 is raised. </p>
<h2 id="sec_predecessors">可能的前置算子</h2>
<p>
<code><a href="read_object_model_3d.html"><span data-if="hdevelop" style="display:inline">read_object_model_3d</span><span data-if="c" style="display:none">read_object_model_3d</span><span data-if="cpp" style="display:none">ReadObjectModel3d</span><span data-if="com" style="display:none">ReadObjectModel3d</span><span data-if="dotnet" style="display:none">ReadObjectModel3d</span><span data-if="python" style="display:none">read_object_model_3d</span></a></code>, 
<code><a href="affine_trans_object_model_3d.html"><span data-if="hdevelop" style="display:inline">affine_trans_object_model_3d</span><span data-if="c" style="display:none">affine_trans_object_model_3d</span><span data-if="cpp" style="display:none">AffineTransObjectModel3d</span><span data-if="com" style="display:none">AffineTransObjectModel3d</span><span data-if="dotnet" style="display:none">AffineTransObjectModel3d</span><span data-if="python" style="display:none">affine_trans_object_model_3d</span></a></code>, 
<code><a href="prepare_object_model_3d.html"><span data-if="hdevelop" style="display:inline">prepare_object_model_3d</span><span data-if="c" style="display:none">prepare_object_model_3d</span><span data-if="cpp" style="display:none">PrepareObjectModel3d</span><span data-if="com" style="display:none">PrepareObjectModel3d</span><span data-if="dotnet" style="display:none">PrepareObjectModel3d</span><span data-if="python" style="display:none">prepare_object_model_3d</span></a></code>
</p>
<h2 id="sec_successors">可能的后置算子</h2>
<p>
<code><a href="clear_object_model_3d.html"><span data-if="hdevelop" style="display:inline">clear_object_model_3d</span><span data-if="c" style="display:none">clear_object_model_3d</span><span data-if="cpp" style="display:none">ClearObjectModel3d</span><span data-if="com" style="display:none">ClearObjectModel3d</span><span data-if="dotnet" style="display:none">ClearObjectModel3d</span><span data-if="python" style="display:none">clear_object_model_3d</span></a></code>
</p>
<h2 id="sec_see">参考其它</h2>
<p>
<code><a href="project_shape_model_3d.html"><span data-if="hdevelop" style="display:inline">project_shape_model_3d</span><span data-if="c" style="display:none">project_shape_model_3d</span><span data-if="cpp" style="display:none">ProjectShapeModel3d</span><span data-if="com" style="display:none">ProjectShapeModel3d</span><span data-if="dotnet" style="display:none">ProjectShapeModel3d</span><span data-if="python" style="display:none">project_shape_model_3d</span></a></code>, 
<code><a href="object_model_3d_to_xyz.html"><span data-if="hdevelop" style="display:inline">object_model_3d_to_xyz</span><span data-if="c" style="display:none">object_model_3d_to_xyz</span><span data-if="cpp" style="display:none">ObjectModel3dToXyz</span><span data-if="com" style="display:none">ObjectModel3dToXyz</span><span data-if="dotnet" style="display:none">ObjectModel3dToXyz</span><span data-if="python" style="display:none">object_model_3d_to_xyz</span></a></code>
</p>
<h2 id="sec_module">模块</h2>
<p>
3D Metrology</p>
<!--OP_REF_FOOTER_START-->
<hr>
<div class="indexlink">
<a href="index_classes.html"><span data-if="dotnet" style="display:none;">类别</span><span data-if="cpp" style="display:none;">类别</span></a><span data-if="dotnet" style="display:none;"> | </span><span data-if="cpp" style="display:none;"> | </span><a href="index_by_name.html">算子列表</a>
</div>
<div class="footer">
<div class="copyright">HALCON算子参考手册 Copyright © 2015-2023 51Halcon</div>
</div>
</div>
</body>
</html>
